Apparatus and method for providing metered capacity of computer resources

ABSTRACT

An apparatus and method provides the capability of metering temporary capacity on demand in a computer system. A resource-time is specified, such as processor-days. The actual usage of the resource is monitored, and the customer is charged for only the actual usage of the resource. In this manner a customer may purchase a specified resource-time, and is only charged for the time that the resource is actually used. The preferred embodiments extend to metering temporary capacity on demand in a logically partitioned computer system. If a resource is shared, the actual usage of the resource is monitored, and the customer is only billed for actual usage that exceeds a predetermined non-zero threshold.

RELATED APPLICATION

This patent application is related to U.S. patent application “METHOD TOPROVIDE ON-DEMAND RESOURCE ACCESS”, Ser. No. 10/406,652 filed on Apr. 3,2003, which is incorporated herein by reference.

BACKGROUND OF THE INVENTION

1. Technical Field

This invention generally relates to data processing, and morespecifically relates to utilization of resources in a computer system.

2. Background Art

Since the dawn of the computer age, computer systems have evolved intoextremely sophisticated devices that may be found in many differentsettings. Computer systems typically include a combination of hardware(e.g., semiconductors, circuit boards, etc.) and software (e.g.,computer programs). As advances in semiconductor processing and computerarchitecture push the performance of the computer hardware higher, moresophisticated computer software has evolved to take advantage of thehigher performance of the hardware, resulting in computer systems todaythat are much more powerful than just a few years ago.

One problem with computer systems today is balancing the cost of thecomputer hardware with fluctuating demands on computer resources. Inmost networked computer systems, there are times when the computingdemands are relatively low, and other times when the computing demandsare very high. If a company purchases a computer system that is capableof meeting peak demand, much of the capacity of the computer system willgo unused during non-peak times. In addition, purchasing capacity tomeet peak demand is costly. If a company purchases a computer systemthat is capable of meeting average demand, the cost is lower, but theperformance of the computer system suffers during peak times.

One way to provide a more flexible solution allows a computer user tobuy a computer system that has some resources installed, but initiallydisabled. When the customer determines that more capacity is needed, thecustomer may enter into an arrangement with the provider of the computersystem to enable certain resources for a fixed period of time. Thisworks out particularly well for companies that have seasonal peaks. Thecompanies can purchase a computer system at a reasonable cost that hasthe capability of providing enhanced computing power during the peakseason. The concept of providing temporary capacity on demand is thesubject matter of the related patent application “Method to ProvideOn-Demand Resource Access”, Ser. No. 10/406,652, filed on Apr. 3, 2003.

Referring to FIG. 2, a flow diagram of one suitable method 200 forproviding temporary capacity on demand begins by the customer requestingan enablement code from the manufacturer (step 210). The customerreceives the enablement code, which includes a specification ofresource-time (step 220). The term “resource-time” is a general termthat allows specifying any resource or combination of resources for anysuitable period of time. One example of resource-time is processor-days.The customer enters the enablement code, which enables the resources onthe computer system (step 230). A timer is then started (step 240). Theuser may then use the resources (step 250) as long as the resource-timehas not expired (step 260=NO). Once the resource-time expires (step260=YES), the resources are disabled (step 270).

A simple example will show the usefulness of method 200. Let's assumethat a company that sells goods via catalog sales experiences peakdemand in November and December of each year due to holiday shopping.The company could purchase a computer system that has one or moreadditional processors that are installed but initially disabled. Thecompany may then contract with the provider of the computer system toenable the additional processor(s) for a set period of time. Let'sassume that the computer system has two additional processors, and let'sassume that the peak buying period runs for the thirty day period fromNovember 15^(th) to December 14^(th). The customer could purchase sixtyprocessor-days of additional capacity beginning on November 15^(th).These two additional processors will then be enabled for the thirty dayperiod (providing the sixty processor-days of additional capacity). Oncethe sixty processor-days have elapsed, the two additional processors aredisabled.

One problem with method 200 is the customer pays for the resource-timeeven though the resources may be used only a fraction of that time. Forexample, if the additional processors are used primarily during theeight hour day shift, the customer ends up paying for capacity that goesmostly unused during the other two shifts. In the example above, if thecustomer purchases sixty processor-days, and two processors are beingenabled, these two processors are enabled for exactly thirty daysregardless of workload during that time. While this is a vastimprovement over prior systems that do not provide temporary capacity ondemand, it still has its drawbacks.

Without a way to provide temporary capacity on demand in a way thatallows customers to pay for only the actual use of temporary resources,the computer industry will not be able to meet the demands of customerswho prefer to pay for temporary resources based on actual usage.

DISCLOSURE OF INVENTION

An apparatus and method provides the capability of metering temporarycapacity on demand in a computer system. A resource-time is specified,such as processor-days. The actual usage of the resource is monitored,and the customer is charged for only the actual usage of the resource.In this manner a customer may purchase a specified resource-time, and isonly charged for the time that the resource is actually used. Thepreferred embodiments extend to metering temporary capacity on demand ina logically partitioned computer system. If a resource is shared, theactual usage of the resource is monitored, and the customer is onlybilled for actual usage that exceeds a predetermined non-zero threshold.

The foregoing and other features and advantages of the invention will beapparent from the following more particular description of preferredembodiments of the invention, as illustrated in the accompanyingdrawings.

BRIEF DESCRIPTION OF DRAWINGS

The preferred embodiments of the present invention will hereinafter bedescribed in conjunction with the appended drawings, where likedesignations denote like elements, and:

FIG. 1 is a block diagram of a computer apparatus in accordance with thepreferred embodiments;

FIG. 2 is a flow diagram of a method for providing temporary capacity ondemand;

FIG. 3 is a flow diagram of a first method in accordance with thepreferred embodiments that allows a customer to be billed for meteredusage of temporary resources;

FIG. 4 is a flow diagram of a second method in accordance with thepreferred embodiments that allows a customer to prepay for metered usageof temporary resources;

FIG. 5 is a block diagram showing logical components in a logicallypartitioned computer system;

FIG. 6 is a flow diagram of a third method in accordance with thepreferred embodiments that allows a customer to be billed for meteredusage of temporary resources in a logically partitioned computer system;and

FIG. 7 is a flow diagram of a fourth method in accordance with thepreferred embodiments that allows a customer to prepay for metered usageof temporary resources in a logically partitioned computer system.

BEST MODE FOR CARRYING OUT THE INVENTION

Referring to FIG. 1, a computer system 100 is an enhanced IBM eServeriSeries computer system, and represents one suitable type of computersystem in accordance with the preferred embodiments. Those skilled inthe art will appreciate that the mechanisms and apparatus of the presentinvention apply equally to any computer system. As shown in FIG. 1,computer system 100 comprises one or more processors 110 connected to amain memory 120, a mass storage interface 130, a display interface 140,a network interface 150, and a plurality of I/O slots 180. These systemcomponents are interconnected through the use of a system bus 160. Massstorage interface 130 is used to connect mass storage devices (such as adirect access storage device 155) to computer system 100. One specifictype of direct access storage device is a CD RW drive, which may readdata from a CD R.W. 195. Note that mass storage interface 130, displayinterface 140, and network interface 150 may actually be implemented inadapters coupled to I/O slots 180.

Main memory 120 contains data 121, an operating system 122, and acapacity manager 123. Data 121 is any data that may be read or writtenby any processor 110 or any other device that may access the main memory120. Operating system 122 is a multitasking operating system, such asOS/400, AIX, or Linux; however, those skilled in the art will appreciatethat the spirit and scope of the present invention is not limited to anyone operating system. Any suitable operating system may be used.Operating system 122 is a sophisticated program that contains low-levelcode to manage the resources of computer system 100. Some of theseresources are processor 110, main memory 120, mass storage interface130, display interface 140, network interface 150, system bus 160, andI/O slots 180.

Capacity manager 123 provides metered capacity on demand. The capacitymanager 123 includes an enablement code mechanism 124, which is used todetermine whether an enablement code 125 is valid, and to enable one ormore resources when the enablement code is determined to be valid. Theresource allocator 126 is the mechanism that allocates resources foruse. Thus, when the enablement mechanism 124 determines that anenablement code 125 is valid, the resource allocator 126 makes thecorresponding resource(s) available for use. Capacity manager 123 alsoincludes an actual use meter 127 that measures usage in resource-timeunits 128. In a first embodiment, the actual use meter tracks actualusage in resource-time units, and the customer is then billed for theactual usage. In a second embodiment, the actual use meter has a prepaidnumber of resource-time units, and the actual use is deducted from theprepaid resource-time units until the prepaid resource-time units areexhausted.

Computer system 100 utilizes well known virtual addressing mechanismsthat allow the programs of computer system 100 to behave as if they onlyhave access to a large, single storage entity instead of access tomultiple, smaller storage entities such as main memory 120 and DASDdevice 155. Therefore, data 121, operating system 122, and capacitymanager 123 are shown to reside in main memory 120, those skilled in theart will recognize that these items are not necessarily all completelycontained in main memory 120 at the same time. It should also be notedthat the term “memory” is used herein to generically refer to the entirevirtual memory of computer system 100.

Processor 110 may be constructed from one or more microprocessors and/orintegrated circuits. Processor 110 executes program instructions storedin main memory 120. Main memory 120 stores programs and data thatprocessor 110 may access. When computer system 100 starts up, processor110 initially executes the program instructions that make up theoperating system 122.

Although computer system 100 is shown to contain only a single systembus, those skilled in the art will appreciate that the present inventionmay be practiced using a computer system that has multiple buses. Inaddition, the I/O interfaces that are used in the preferred embodimenteach may include separate, fully programmed microprocessors that areused to off-load compute-intensive processing from processor 110, as iniSeries input/output processors, or may be simple industry standard I/Oadapters (IOAs).

Display interface 140 is used to directly connect one or more displays165 to computer system 100. These displays 165, which may benon-intelligent (i.e., dumb) terminals or fully programmableworkstations, are used to allow system administrators and users tocommunicate with computer system 100. Note, however, that while displayinterface 140 is provided to support communication with one or moredisplays 165, computer system 100 does not necessarily require a display165, because all needed interaction with users and other processes mayoccur via network interface 150.

Network interface 150 is used to connect other computer systems and/orworkstations (e.g., 175 in FIG. 1) to computer system 100 across anetwork 170. The present invention applies equally no matter howcomputer system 100 may be connected to other computer systems and/orworkstations, regardless of whether the network connection 170 is madeusing present-day analog and/or digital techniques or via somenetworking mechanism of the future. In addition, many different networkprotocols can be used to implement a network. These protocols arespecialized computer programs that allow computers to communicate acrossnetwork 170. TCP/IP (Transmission Control Protocol/Internet Protocol) isan example of a suitable network protocol.

At this point, it is important to note that while the present inventionhas been and will continue to be described in the context of a fullyfunctional computer system, those skilled in the art will appreciatethat the present invention is capable of being distributed as a programproduct in a variety of forms, and that the present invention appliesequally regardless of the particular type of computer readable signalbearing media used to actually carry out the distribution. Examples ofsuitable signal bearing media include: recordable type media such asfloppy disks and CD RW (e.g., 195 of FIG. 1), and transmission typemedia such as digital and analog communications links.

Referring now to FIG. 3, a method 300 in accordance with a firstembodiment bills a customer for actual use of temporary resources in acomputer system. First, the customer requests an enablement code (step310). The provider of the computer system sends the enablement code tothe customer (step 320). Note that the enablement code includes aspecification of resource-time. The resources specified in theenablement code are then enabled (step 330). The customer may then usethe resources (step 340). The actual usage of the resources is metered(step 350). The usage of resources in step 340 and metering of actualusage in step 350 continues as long as it is not time to bill (step360=NO). Once it is time to bill (step 360=YES), a record of meteredresource usage is sent to the resource provider (step 370), and theresource provider then sends a bill to the customer for the meteredresource usage (step 380). The advantage of method 300 when compared tomethod 200 in FIG. 2 is the customer is only charged for the actualusage of the resources. Thus, if two processors are enabled for sixtyprocessor-days, and the two processors are used on average only eighthours of each twenty four hour day, the sixty processor days will lastfor a total of ninety days instead of the thirty days provided by method200 in FIG. 2. Two processors times ⅓ of a day usage per calendar dayequals ⅔ of a processor day per calendar day. Because only ⅔ of aprocessor day is expended per calendar day, the sixty processor dayswill last for ninety calendar days instead of the thirty calendar daysthat would result using method 200 in FIG. 2. In addition, method 300may include the ability to bill at a higher rate for a predeterminedresource-time (such as sixty processor-days), then bill at a lower rateonce the predetermined resource-time has been used.

The record of metered resource usage may be sent to the provider via anysuitable carrier. In a manual example, the customer queries the computersystem to determine metered usage, and reports the metered usage on aform that is sent or faxed to the resource provider. In an automaticexample, the capacity manager automatically sends the record of meteredusage to the provider via the Internet, and the customer is then billedfor the metered usage. Of course, other combinations and variations arepossible, all of which are within the scope of the preferredembodiments.

Another option is to allow the customer to prepay for a predeterminedamount of resource-time, and to deduct actual usage from the prepaidamount. This is similar to a prepaid phone card that has a specifiednumber of minutes, and deducts from the total as minutes are used. Oneimplementation of a prepaid method is shown as method 400 in FIG. 4. Thecustomer prepays for a specified resource-time (step 410). The customerthen requests an enablement code for the prepaid resource-time (step420). The resource supplier then provides the enablement code to thecustomer (step 430), which includes a specification of prepaidresource-time. The resources are then enabled (step 440) and used (step450). The actual usage of the resources is metered (step 460), anddeducted from the prepaid resource-time. Steps 450 and 460 continue aslong as the metered use is less than the prepaid resource-time (step470=YES). Once the metered use is no longer less than the prepaidresource time (step 470=NO), the resources are disabled (step 480).

A modification to method 400 in FIG. 4 within the scope of the preferredembodiments is the ability to renew the prepaid resource-time. Thus, ifthe prepaid resource time gets to some predetermined threshold (e.g.,20% of initial amount), the customer could be prompted to prepay foradditional resource-time. If the customer does so before the prepaidresource-time is used up, the additional resource-time is added to theremaining balance, allowing the computer system to continue operatingwith the additional resources without interruption.

While the examples discussed with reference to FIGS. 1, 3 and 4 above donot have logical partitions, the preferred embodiments also extend to alogically partitioned computer system. Referring to FIG. 5, one specificimplementation of a logically partitioned computer system 500 includes Nlogical partitions, with each logical partition executing its ownrespective operating system 526. In FIG. 5, logical partitions 525A . .. 525N are shown executing their respective operating systems 526A . . .526N. The operating system 526 in each logical partition may be the sameas the operating system in other partitions, or may be a completelydifferent operating system. Thus, one partition can run the OS/400operating system, while a different partition can run another instanceof OS/400, possibly a different release, or with different environmentsettings (e.g., time zone). The operating systems in the logicalpartitions could even be different than OS/400, provided it iscompatible with the hardware (such as AIX or Linux). In this manner thelogical partitions can provide completely different computingenvironments on the same physical computer system.

The logical partitions are managed by a partition manager 540. Oneexample of suitable partition manager 540 is known as a “hypervisor” inIBM terminology. Partition manager 540 manages resources 550, shown inFIG. 5 as resource 550A through resource 550×. A “resource” in thiscontext may be any hardware or software that may be controlled bypartition manager 540. Examples of hardware resources includeprocessors, memory, and hard disk drives. Examples of software resourcesinclude a database, internal communications (such as a logical LAN), orapplications (such as word processors, e-mail, etc.). The partitionmanager 540 controls which resources 550 may be used by the logicalpartitions 525. A resource, once made available to the partition manager540, is categorized as an available resource 560 if it has not yet beenassigned to a logical partition, is categorized as a shared resource 570if multiple logical partitions may access the resource, and iscategorized as a dedicated resource 580 if it has been exclusivelyassigned to a logical partition. FIG. 5 shows dedicated resources 580A .. . 580N that correspond to each logical partition 525A . . . 525N.

Referring to FIG. 6, a method 600 in accordance with the preferredembodiments begins when a customer requests an enablement code for atemporary resource on a computer system that includes logical partitions(step 602). The computer supplier provides the enablement code to thecustomer, which includes a specification of which resource to enable(step 604). The resource is then marked as available (step 606). Thismeans that the resource is placed in the pool of available resources 560that have not yet been assigned to any logical partition. What happensnext depends on whether the resource is then allocated by the partitionmanager as a dedicated resource to a particular partition, or whetherthe resource is allocated for shared use (step 610). If the resource isto be a dedicated resource to a logical partition (step 610=YES), ameter timer is started (step 620) and the resource is used (step 630).This continues (step 630=NO) until the meter timer indicates it is timeto bill (step 630=YES). A record of the metered resource usage is thensent to the resource provider (step 632), and the resource provider thensends a bill for the metered resource usage to the customer (step 634).Note that when a resource is configured to a dedicated partition (step610=YES), the resource is considered to be 100% in use regardless of theactual usage in the dedicated partition. Therefore, every actual minutethe resource is dedicated to a partition is a resource-minute that ischarged to the customer. This is why a meter time is started in step620, and why the record of metered usage in step 632 is the resourcemultiplied by the time elapsed on the meter timer. In this sense, method600 is similar to method 200 in FIG. 2 that bills the customer accordingto the time a resource is enabled regardless of its actual use. Thistype of billing makes sense for logical partitions that have dedicateduse of a resource, because that resource is unavailable for otherlogical partitions to use.

If the resource is allocated by the partition manager as a sharedresource (step 610=NO), multiple logical partitions may use the sharedresource (step 640). We assume a threshold value for shared use isspecified. As long as the shared use does not exceed the threshold (step650=NO), no time is metered. Only when the shared use exceeds thespecified threshold (step 650=YES) does the capacity manager meter theshared use, and then only the shared use over the threshold is metered(step 652). Once it is time to bill (step 660=YES), the record ofmetered resource usage is sent to the resource provider (step 662), andthe resource provider sends a bill for the metered resource usage to thecustomer (step 664).

The threshold that determines when the customer is charged is preferablydetermined by the capacity of the system before the temporary resourceswere enabled. For example, if one processor is allocated to the sharedpool for five shared partitions that are configured for equal access tothe pool, each of the partitions can use up to 20% of the processorclock cycles. Usage is averaged over a period of time and if anypartition's usage exceeds 20% of the processor cycles, work from thatpartition is not dispatched to the processor before work from the otherpartitions, permitting the other partitions' usage to climb to theirconfigured 20%. Now, let's assume that two additional processors aremade available on demand. These two processors are initially markedavailable (step 606), and are then allocated as shared resources (step610=NO). When the aggregate pool usage of processor clock cycles exceedsthe amount one processor provides over an average time period, theadditional cycles used are metered, and accumulate until aprocessor-minute's worth of cycles have been used and a processor-minuteis charged to the customer. Of course, any suitable resource-timeincrement may be used. In this manner, different logical partitions mayshare a resource in a logically partitioned computer system and willonly be charged according to their actual respective use of theresource. One advantage of the present invention is the ability of alogical partition service provider being able to determine which logicalpartition exceeded allocations (and so was metered) so the customerusing metered capacity can be billed by the service provider.

Referring now to FIG. 7, a method 700 in accordance with the preferredembodiments shows the case when a customer prepays for resource-time(step 710) in a logically partitioned computer system, rather than beingbilled (as shown in FIG. 6). The enablement code is requested (step 712)and received (step 714), and the resource is made available forassignment to a logical partition (step 716). If the resource isdedicated to a partition (step 720=YES), the meter timer is started(step 730), and the resource is used (step 732) until the metered useequals the prepaid resource time (step 740=NO). At this point, theresource is disabled (step 742). If the resource is shared among logicalpartitions (step 720=NO), the shared resources are used by the logicalpartitions (step 750). When the shared use exceeds the specifiedthreshold (step 760=YES), the actual usage over the threshold is metered(step 762), and the metered use is compared to the prepaidresource-time. Once the metered use is equal to the prepaidresource-time (step 720=NO), the resource is disabled (step 772) suchthat no new work is dispatched to the processor. Note that method 700could include steps that allow renewing the prepaid time so the resourcemetered use never arrives at the prepaid resource-time, therebypreventing the resource from being disabled.

The preferred embodiments provide significant advantages over the knownprior art. Now temporary capacity on demand may be provided on a meteredbasis, where the customer is only charged for actual usage of theresource. This is analogous to a telephone bill or electric bill, wherethe customer pays based on actual usage of resources. The ability tometer and bill based on actual usage provides enhanced capabilities in alogically partitioned computer system, because logical partitions thatshare resources may now each be charged for only actual usage of theshared resources. Because actual usage may now be metered and billed,the level of granularity for charging customers is reduced. For example,instead of billing for processor-days, one could bill forprocessor-minutes, processor-seconds, or even processor cycles.

One skilled in the art will appreciate that many variations are possiblewithin the scope of the present invention. Thus, while the invention hasbeen particularly shown and described with reference to preferredembodiments thereof, it will be understood by those skilled in the artthat these and other changes in form and details may be made thereinwithout departing from the spirit and scope of the invention.

1. An apparatus comprising: at least one processor; a memory coupled tothe at least one processor; at least one resource coupled to the atleast one processor that provides temporary capacity when requested by auser of the apparatus; and a capacity manager residing in the memory andexecuted by the at least one processor, the capacity manager managingaccess to the at least one resource when requested by the user, thecapacity manager metering actual use of the at least one resource andbilling for the actual use.
 2. The apparatus of claim 1 wherein thecapacity manager bills for the actual use by generating a bill formetered resource-time that represents actual use of the at least oneresource.
 3. The apparatus of claim 1 wherein the capacity manager billsfor the actual use by deducting metered resource-time from a prepaidresource-time.
 4. The apparatus of claim 1 further comprising anenablement code mechanism that evaluates an enablement code to determinewhether the code is valid, wherein the enablement code includes aspecified resource-time.
 5. The apparatus of claim 1 further comprisinga resource allocator that enables the at least one resource before thecapacity manager meters the actual use of the at least one resource. 6.The apparatus of claim 5 wherein the resource allocator disables the atleast one resource when the capacity manager metered actual use of theat least one resource exceeds a specified resource-time.
 7. An apparatuscomprising: at least one processor; a memory coupled to the at least oneprocessor; a plurality of logical partitions defined on the apparatus;at least one resource that provides temporary capacity when requested bya user of the apparatus; and a capacity manager residing in the memoryand executed by the at least one processor, the capacity managermanaging access to the at least one resource by the plurality of logicalpartitions, the capacity manager metering actual use of the at least oneresource by each logical partition and billing for the actual use byeach logical partition.
 8. The apparatus of claim 7 wherein the capacitymanager bills for the actual use by each logical partition by generatinga bill for metered resource-time for each logical partition thatrepresents actual use of the at least one resource by the logicalpartition.
 9. The apparatus of claim 7 wherein the capacity managerbills for the actual use by each logical partition by deducting meteredresource-time for each logical partition from a prepaid resource-timefor each logical partition.
 10. The apparatus of claim 7 furthercomprising an enablement code mechanism that evaluates an enablementcode to determine whether the code is valid, wherein the enablement codeincludes a specified resource-time.
 11. The apparatus of claim 7 furthercomprising a resource allocator that enables the at least one resourcebefore the capacity manager meters the actual use of the at least oneresource.
 12. The apparatus of claim 7 wherein the resource allocatordisables the at least one resource when the capacity manager meteredactual use of the at least one resource exceeds a specifiedresource-time.
 13. The apparatus of claim 7 wherein the capacity managerdetermines whether a resource is shared, and if so, meters usage of theshared resource above a predetermined non-zero threshold.
 14. Acomputer-implemented method for providing metered capacity of at leastone temporary resource on demand, the method comprising the steps of:enabling the at least one resource for metered operation; meteringactual usage of the at least one resource; and billing for the actualusage of the at least one resource.
 15. The method of claim 14 whereinthe step of billing for the actual usage comprises the step ofgenerating a bill for metered resource-time that represents actual useof the at least one resource.
 16. The method of claim 14 wherein thestep of billing for the actual usage comprises the step of deductingmetered resource-time from a prepaid resource-time.
 17. The method ofclaim 14 further comprising the step of determining whether anenablement code is valid, wherein the enablement code includes aspecified resource-time.
 18. The method of claim 14 further comprisingthe step of disabling the at least one resource when the metered actualusage of the at least one resource exceeds a specified resource-time.19. A computer-implemented method for providing metered capacity of atleast one temporary resource on demand in a computer system thatincludes a plurality of logical partitions, the method comprising thesteps of: enabling the at least one resource for metered operation by aselected logical partition; metering actual usage of the at least oneresource by the selected logical partition; and billing for the actualusage of the at least one resource by the selected logical partition.20. The method of claim 19 wherein the step of billing for the actualusage comprises the step of generating a bill for metered resource-timethat represents actual use of the at least one resource.
 21. The methodof claim 19 wherein the step of billing for the actual usage comprisesthe step of deducting metered resource-time from a prepaidresource-time.
 22. The method of claim 19 further comprising the step ofdetermining whether an enablement code is valid, wherein the enablementcode includes a specified resource-time.
 23. The method of claim 19further comprising the step of disabling the at least one resource whenthe metered actual usage of the at least one resource exceeds aspecified resource-time.
 24. The method of claim 19 further comprisingthe step of determining whether a resource is shared, and if so,metering usage of the shared resource above a predetermined non-zerothreshold.
 25. A method for doing business comprising the steps of: (1)providing a computer system to a customer, wherein the computer systemincludes at least one resource that provides metered capacity on demand;(2) at the request of the customer, enabling the at least one resource;(3) metering actual usage of the at least one resource; and (4) billingthe customer for the actual usage of the at least one resource.
 26. Amethod for doing business comprising the steps of: (1) providing acomputer system to a customer, wherein the computer system includes atleast one resource that provides metered capacity on demand; (2)receiving prepayment by the customer for a specified resource-time ofthe at least one resource; (3) enabling the at least one resource; (4)metering actual usage of the at least one resource; and (5) deductingthe actual usage from the prepaid specified resource-time.
 27. Themethod of claim 26 further comprising the step of disabling the at leastone resource when the actual usage is not less than the prepaidspecified resource time.
 28. A program product comprising: a capacitymanager that manages access to at least one resource in a computersystem that provides temporary increased capacity when requested by auser, the capacity manager metering actual use of the at least oneresource and billing for the actual use; and computer readable signalbearing media bearing the capacity manager.
 29. The program product ofclaim 28 wherein the signal bearing media comprises recordable media.30. The program product of claim 28 wherein the signal bearing mediacomprises transmission media.
 31. The program product of claim 28wherein the capacity manager bills for the actual use by generating abill for metered resource-time that represents actual use of the atleast one resource.
 32. The program product of claim 28 wherein thecapacity manager bills for the actual use by deducting meteredresource-time from a prepaid resource-time.
 33. The program product ofclaim 28 further comprising an enablement code mechanism that evaluatesan enablement code to determine whether the code is valid, wherein theenablement code includes a specified resource-time.
 34. The programproduct of claim 28 further comprising a resource allocator that enablesthe at least one resource before the capacity manager meters the actualuse of the at least one resource.
 35. The program product of claim 34wherein the resource allocator disables the at least one resource whenthe capacity manager metered actual use of the at least one resourceexceeds a specified resource-time.
 36. A program product comprising: (A)a capacity manager that manages access to at least one resource by aplurality of logical partitions in a computer system, the capacitymanager metering actual use of the at least one resource by each logicalpartition and billing for the actual use by each logical partition; and(B) computer readable signal bearing media bearing the capacity manager.37. The program product of claim 36 wherein the signal bearing mediacomprises recordable media.
 38. The program product of claim 36 whereinthe signal bearing media comprises transmission media.
 39. The programproduct of claim 36 wherein the capacity manager bills for the actualuse by each logical partition by generating a bill for meteredresource-time for each logical partition that represents actual use ofthe at least one resource by the logical partition.
 40. The programproduct of claim 36 wherein the capacity manager bills for the actualuse by each logical partition by deducting metered resource-time foreach logical partition from a prepaid resource-time for each logicalpartition.
 41. The program product of claim 36 further comprising anenablement code mechanism that evaluates an enablement code to determinewhether the code is valid, wherein the enablement code includes aspecified resource-time.
 42. The program product of claim 36 furthercomprising a resource allocator that enables the at least one resourcebefore the capacity manager meters the actual use of the at least oneresource.
 43. The program product of claim 42 wherein the resourceallocator disables the at least one resource when the capacity managermetered actual use of the at least one resource exceeds a specifiedresource-time.
 44. The program product of claim 36 wherein the capacitymanager determines whether a resource is shared, and if so, meters usageof the shared resource above a predetermined non-zero threshold.